iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 20
0

上一篇,我們已經將需要用到的db建置完成

這一篇開始,我們就先來做scaffold吧

要做scaffold之前我們得先安裝幾個套件

分別是

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

Microsoft.VisualStudio.Web.CodeGeneration.Design

Microsoft.EntityFrameworkCore.Tools.DotNet

https://ithelp.ithome.com.tw/upload/images/20180107/20103426KeV0ikZE8c.png

安裝完畢後我們可以看到相依性的資料夾中多出了Nuget的資料夾
https://ithelp.ithome.com.tw/upload/images/20180107/20103426oXlLbQJ4jB.png

再來我們得先找出我們docker上db的位置

所以我們先輸入以下指令碼來查詢

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sqltest

https://ithelp.ithome.com.tw/upload/images/20180107/20103426MJWjG9RWzK.png

接下來我們先進入CoreEmpty專案底下(謎之音:因為它需要.net core專案來做....
https://ithelp.ithome.com.tw/upload/images/20180107/20103426bKJeErvhnP.png

接著我們先使用which 去尋找dotnet
https://ithelp.ithome.com.tw/upload/images/20180107/20103426nIXx5JPV59.png

得到路徑後...我們就來打看看吧

/usr/local/share/dotnet/dotnet ef

執行後我們就可以看到可愛的獨角獸了
https://ithelp.ithome.com.tw/upload/images/20180107/20103426f02pB3cUeh.png

接著我們打開terminal開始敲鍵盤吧!!

開始我們先來查詢該怎麼使用cli
https://ithelp.ithome.com.tw/upload/images/20180113/20103426ICHfkYlmUH.png

發現dbcontext,繼續查下去
https://ithelp.ithome.com.tw/upload/images/20180113/201034267tM06T8zrL.png

終於看到我們的scaffold了,仔細在研究一下他的用法
https://ithelp.ithome.com.tw/upload/images/20180113/201034265fML8dGIw6.png

確定後就讓我們輸入正確的指令吧

dotnet ef dbcontext scaffold 'Data Source=127.0.0.1,1401;Initial Catalog=Blogging;Persist Security Info=True;User ID=sa;Password=Qazwsx!23' Microsoft.EntityFrameworkCore.SqlServer -o /Models

接著檢查一下資料夾
https://ithelp.ithome.com.tw/upload/images/20180113/20103426ckcgnH9357.png

這邊我們看到了自動產生的BloggingContext
https://ithelp.ithome.com.tw/upload/images/20180113/20103426OOUcZqr7Lz.png

目前這邊看起來我們已經完成了,應該是沒什麼問題了

這邊我們將會需要測試一下,所以我們就先建立一個Controller叫做Blogs
https://ithelp.ithome.com.tw/upload/images/20180113/20103426TRcQCTmj1A.png

接著讓我們執行起來使用postman試試看

在這邊我們遇到了例外問題!!
https://ithelp.ithome.com.tw/upload/images/20180113/201034268t7x9y3SZ6.png

看起來這邊我們應該是需要為BloggingContext建立一個建構子
https://ithelp.ithome.com.tw/upload/images/20180113/20103426haXKKMR2LQ.png

為何要建立這樣的一個建構子呢?

因為我們在Startup裡面已經有註冊了所以我們才需要這樣做
https://ithelp.ithome.com.tw/upload/images/20180113/20103426CvLeGK3oIy.png

這邊我們執行起來開始使用postman測試一下吧
https://ithelp.ithome.com.tw/upload/images/20180113/20103426BdJQpLB1S4.png

什麼!?失敗了為什麼?

讓我們翻到應用程式輸出來看看
https://ithelp.ithome.com.tw/upload/images/20180113/20103426B0y7TnIXaB.png

看來db是連線不到的,這是為什麼呢?

因為我們必須要把它當作內網來連線而不是放在本機上來連線

所以這邊我們透過ifconfig找到我們的內網ip位置
https://ithelp.ithome.com.tw/upload/images/20180113/20103426TJALAJOpwY.png

將連線的ip改為內網的192.168.0.18

接著再讓我們測試一次
https://ithelp.ithome.com.tw/upload/images/20180113/20103426gfP9fkpolZ.png

終於成功了!!


上一篇
Day - 19 從零開始(三)
下一篇
Day - 21 從零開始(五)
系列文
在Mac上開發.Net Core30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言